/*
*	Copyright (C) 2014  Julio Montes, Mario Carrillo
*	
*	Julio Montes e-mail: imc.coder@gmail.com 
*
*	Mario Carrillo e-mail: mario_90ago@live.com.mx
*
*	BSD 3-Clause License
*/

#ifndef SDK_LEXERMGR_H
#define SDK_LEXERMGR_H

#include <wx/wx.h>
#include <vector>

#include "sdk/include/mgr.h"

namespace sdk
{
    class Lexer;

    class LexerManager : public sdk::Mgr<LexerManager>
    {
        friend class sdk::Mgr<LexerManager>;
    public:
        sdk::Lexer *GetLexerByFileMask( const wxString &fileMask ) const;

        sdk::Lexer *GetLexerByName( const wxString &lexer ) const;

        sdk::Lexer *GetLexerBySupportedFile( const wxString &filename ) const;
    protected:
    private:
        LexerManager();
        virtual ~LexerManager();

        std::vector<sdk::Lexer *> m_vectorLexers;
    };
}

#endif // SDK_LEXERMGR_H
